package com.niit.controller

import com.niit.bean.AdClickData
import com.niit.handler.DataHandler
import com.niit.service.{AreaCountService, BlackListService, TimeCountService}
import org.apache.spark.streaming.dstream.DStream

/*
  用来接收外部数据  外部数据文件 Kafka HDFS
  （1-2 只需要做一次）
  1.创建新主题 newAD2
  2.修改 file_to_kafka.conf  修改读取数据的路径  主题
  （3 可做可不做）
  3.删除 mock 目录下 AD.data
  （4-6 每次都要做）
  4.启动flume
  5.修改Spark读取Kafka的主题，并启动
  6.启动 test.sh
 */
class AdDataController {

  private val blackListService = new BlackListService
  private val areaCountService = new AreaCountService
  private val timeCountService = new TimeCountService
  def dispatch(): Unit ={

    //获取Kafka中的数据
    val value: DStream[AdClickData] = DataHandler.kafkaDataHandler("BD2", "newAD22")
    //传递给service 具体分析层
    blackListService.dataAnalysis(value)
    areaCountService.dataAnalysis(value)
    timeCountService.dataAnalysis(value)
    //开启采集
    DataHandler.startAndAwait()
  }

}
